# PyInstaller 配置文件（spec 文件）

# 导入 PyInstaller 构建系统
from PyInstaller.building.build_main import Analysis, PYZ, EXE

# 定义分析步骤
a = Analysis(
    ['SQL_ShuJuDaoRu.py'],  # 要打包的主脚本
    pathex=['.'],  # 搜索导入的路径列表（'.' 表示当前目录）
    binaries=[],  # 要包含的附加二进制文件列表
   datas=[],  # 添加 ini 文件到 config 子目录
    hiddenimports=[],  # 未自动检测到的隐藏导入列表
    hookspath=[],  # 附加钩子的路径列表
    runtime_hooks=[],  # 附加运行时钩子的列表
    excludes=[],  # 要排除的模块列表
    win_no_prefer_redirects=False,  # 在 Windows 上是否优先不重定向某些 DLL
    win_private_assemblies=False,  # 在 Windows 上是否捆绑私有程序集
    cipher=None,  # PyInstaller 加密文件的路径（用于加密 .pyc 文件）
    noarchive=False,  # 是否不创建 .pyz 归档
)

# 定义 PYZ（Python 归档）步骤
pyz = PYZ(a.pure, a.zipped_data)

# 定义 EXE（可执行文件）步骤
exe = EXE(
    pyz,  # PYZ 归档
    a.scripts,  # 要包含在可执行文件中的脚本
    a.binaries,  # 要包含的二进制文件
    a.zipfiles,  # 要包含的 zip 文件（如果有）
    a.datas,  # 要包含的数据文件
    [],  # 要包含在可执行文件目录中的任何附加文件（这里未使用）
    name='信息系统系统',  # 可执行文件的名称
    debug=False,  # 是否包含调试信息
    bootloader_ignore_signals=False,  # 是否忽略来自操作系统的信号
    strip=False,  # 是否从可执行文件中剥离调试符号
    upx=True,  # 是否使用 UPX 压缩可执行文件（如果引起问题，则设置为 False）
    upx_exclude=[],  # 要从 UPX 压缩中排除的文件列表
    runtime_tmpdir=None,  # 运行时使用的临时目录
    console=False,  # 是否创建控制台窗口（对于 GUI 应用为 False）
    disable_windowed_traceback=False,  # 是否禁用窗口化的回溯对话框
    argv_emulation=False,  # 是否为子进程启用 argv 模拟
    target_arch=None,  # 目标架构（例如 'x86', 'x86_64'）
    codesign_identity=None,  # macOS 上要使用的代码签名身份
    entitlements_file=None,  # macOS 上要使用的权限文件路径
)

# 中文注释说明：
# - 此配置文件用于定义 PyInstaller 如何打包 Python 应用。
# - Analysis 步骤收集应用所需的所有文件和模块。
# - PYZ 步骤创建一个 Python 归档文件，包含纯 Python 代码和已压缩的数据。
# - EXE 步骤创建一个可执行文件，包含 PYZ 归档、脚本、二进制文件和数据文件。
# - 可以通过修改此文件中的选项来自定义打包过程，例如排除某些模块、包含额外的数据文件等。
